#include <stdio.h>
#include <string.h>


int main()
{
    //strlen : 计算字符串长度
    //strcpy : 字符串拷贝  不会进行越界检查
    //strncpy : 拷贝n个字符
    //strcmp : 字符串比较函数
    //strncmp : 比较n个字符
    //strstr : 字符串匹配
    //strcat : 字符串拼接
    //strncat : 字符串n位拼接
    //strtok : 字符串切割
    // char s[] = "hello";//留一个位置给\0
    // // printf("%ld\n",strlen(s));
    // // printf("%ld\n",sizeof(s));
    // //char str[6] = {0};
    // char str[] = "hello";
    
    // //strcpy(str,s);//不是一个内存安全的函数
    // // strncpy(str,s,sizeof(str)-1);
    // if(strcmp(s,str) == 0)
    //     printf("字符串相等\n");
    //printf("%s\n",str);
    // const char *s1 = "hello";
    // const char *s2 = "helloworld";
    // //返回值 ： 字符串中同一位置的字符的asc码的差值
    // //一个字符一个字符的比较，找到不为0的差值返回
    // //字串：由字符串的一部分组成的字符串
    // printf("%d\n",strncmp(s1,s2,5));
    //没找到，返回空指针
    // const char *s1 = "hlo";
    // const char *s2 = "helloworld";
    //在前一个字符串中寻找后一个字符串，找到就返回该字串在前一个字符串中的首地址
    // char *dest = strstr(s2,s1);
    // if(dest == NULL)
    // {
    //     printf("没找到\n");
    // }
    // else
    //     printf("%s\n",dest);

    //字符串切割函数
    //strtok会把分隔符变成'\0'
    // char str[] = "zhangsan,lisi.wangwu";
    //被切割的字符串  切割符号的首地址
    //返回值： 切割下来的字符串的首地址
    // char *s = strtok(str,",.");
    // while(s != NULL)
    // {
    //     printf("%s\n",s);
    //     s = strtok(NULL,",.");
    // }
    //传NULL，继续切割上一次的字符串

    // s = strtok(NULL,",.");
    // printf("%s\n",s);
    // s = strtok(NULL,",.");
    // printf("%s\n",s);
    // s = strtok(NULL,",.");
    // printf("%s\n",s);//没有能再切割的字符串，返回空指针

    const char *s = "world";
    char str[10] = "hello";
    strncat(str,s,sizeof(str) - strlen(str) - 1);
    printf("%s\n",str);
    return 0;
}